When choosing a file server to run Non-Dedicated NetWare, it is extremely important to choose a machine known to run Non-Dedicated NetWare. The following is an summary of why some machines will have problems with Non-Dedicated NetWare. First, the acronym "ND286" stands for Non-Dedicated 286 NetWare in any release from v2.0a through v2.15. ND286 runs DOS applications in 'real mode' and file server processes execute in protected mode. Doing both real and protected modes requires switching the 80x86 back and forth between the two. Switching from real to protected is accomplished by executing a special 80286 machine instruction. However, the 80286 does not have a way of directly switching from protected to real (the 80386 does, but ND286 is based upon the 80286 architecture). Usually due to this missing link in the 80286's instruction set, the 80286 is often called a brain-damaged chip. Anyhow, the only way to do the switch (from protected mode to real mode) is to reset the 80x86. ND286 relies on specific characteristics of the IBM AT hardware (i.e. special reset hardware) and IBM ROM BIOS to perform the reset and correctly control the switch back to real mode. Resetting the hardware is messy, and involves some special keyboard processor and ROM BIOS functionalities. The keyboard processor is given a command to reset the 80286. The ROM BIOS needs to be able to recognize at reset time that it isn't doing a power on reset (Power On Self Test, or POST) and instead transfer control to the correct real mode address. The way that the ROM BIOS recognizes that it is doing a protected to real mode switch is via a special 'shutdown byte'. This byte contains different values, depending upon which protected to real mode switch occurred. The ROM BIOS does not provide any support while the processor is running software in protected mode, so switching back is entirely up to the operating system software. Any implementation differences from the IBM AT can potentially cause ND286 not to work. (In doing the reset, NetWare uses shutdown request type 0Ah, which should cause the ROM BIOS to do a JMP DWORD PTR 40h:67h.) The ROM should not reset any hardware (in particular the interrupt controller) before doing the JMP. The ROM may enable interrupts during processing; however, enabling interrupts will not make any difference because NetWare will have masked off all interrupts at the interrupt control chip prior to requesting the reset. NetWare restores the interrupt mask when it receives control back in real mode. The keyboard processor, which is contained within the keyboard unit, is used primarily to give keyboard scan codes to the resident processor. Other functions that the keyboard processor are used for, on the AT, are after thoughts. One of those after thoughts is the request to enable/disable address line 20 or reset the 80286. The keyboard processor in at least one clone cannot handle the condition when the keyboard controller wants to give the 80286 another keyboard character. Instead of the 80286 requesting the keyboard character, it requests an enable/disable address 20 or a reset the 80286 command. It seems that the keyboard processor microcode can only handle giving the next character once it has a character, not these auxiliary requests. This problem manifests itself if the nondedicated file server hangs when a keyboard key becomes stuck. The AT keyboard processor is used to manage the address 20 enable/disable line. The address 20 logic controls whether or not the address 20 bit coming from the 80286 is actually asserted onto the bus. Disabling address 20 makes the 80286 wrap segments that exist beyond 1Mb back into low memory (ala 808x emulation). This wrapping needs to be enabled for the real to protected switch. The keyboard processor is used to enable/disable line 20 and takes 1ms on the IBM AT. Whereas, on some clones it can take up to 50ms (or more!). So, there are two areas that prevent ND286 to operate on clone machines. First, and easiest to correct, is the problem with a sluggish keyboard processor. To correct this, replace the existing keyboard with a true blue IBM keyboard. There are some clone keyboards that also work in place of the IBM keyboard, but, unlike the IBM keyboard, not everyone of them works in every situation. The second problem is when the BIOS in the machine is not entirely emulating an IBM AT BIOS. Usually the culprit here is that a Phoenix BIOS is being used. Of late, Phoenix seems to have the problem with their BIOS and ND286 resolved, but only in the latest revisions of their BIOS. A proven performer is the BIOS available from AWARD. When a machine fails to run ND286 and the keyboard change doesn't cure it, replacing the machine's BIOS with an AWARD BIOS usually reconciles the problem. However, be aware that there are those machines that are such poor clones that they will never be able to utilize ND286. Alas there is one other problem which may stem from a clone that is not a complete clone. The 80286 must be isolated correctly from the main memory bus or a DMA being done to or from a network board may become corrupted during an 80286 reset sequence.